草庐IT

xcode - 仅公开便利 init 的子类化类

全部标签

java - 使用异常处理消除子类构造函数中不相关的异常

我正在用Java编写一个类,它是我编写的另一个类的子类,它的构造函数显式调用父类(superclass)的构造函数。父类(superclass)的构造函数在直接初始化时可能会抛出几种类型的异常,但是当我初始化我的子类的实例时,有几种永远不会抛出的异常(按设计)。我尝试在子类的构造函数中捕获这些异常,但我收到一条错误消息,指出“构造函数调用必须是构造函数中的第一条语句”。为什么我无法捕获这些异常?例如下面的代码:publicclassPersian_CatextendsCat{publicPersian_Cat(Filefile){try{super(file);}catch(Inval

Java:当 super 的参数是可变参数时,如何要求子类调用 super()

我有一个抽象类,它有一个采用可变参数的构造函数。Java编译器似乎并不要求子类调用super(),即使每个构造函数都有参数。publicabstractclassParent{publicParent(String...varargs){}}publicclassChildextendsParent{//Iwouldlikethistobeacompileerror.Childshouldalwayscallsuper().}如何编写Parent以便子级必须调用super()? 最佳答案 varargs方法的目的是允许程序员单独编写

java - 将 java 远程调试器端口公开到 Internet 是否安全?

我打算公开一个端口,用于通过互联网远程调试基于Java的Web服务,但三思而后行,我意识到它没有任何身份验证。理论上,似乎可以编写一个工具,附加到远程调试器端口,并通过JavaAPI执行任意系统命令。或者修改/转储数据库,等等。至少这个漏洞似乎是这样http://securityaffairs.co/wordpress/36394/hacking/paypal-remote-code-execution.html我不记得曾被强烈警告过要公开远程调试器端口。但如今,当数百个僵尸网络扫描端口寻找漏洞时,应该更好地宣传它。任何人都可以评论它是否安全和/或如何在任意基于java的网络服务上以安

java - 带有 Java 8 lambdas 和 Optional 的子类

我不明白为什么下面的代码不能编译:privateResponseEntitybuildResponse(RequestModelrequestModel,RequestModelParamConverterparamConverter,SupplierxsdSupplier,SupplierxmlTemplateSupplier){returnOptional.ofNullable(newRequestErrorHandler().validate(validator,requestModel)).map(validationErrors->newResponseEntity(vali

java - 使用仅调用重写的父类(super class)方法的子类方法有好处吗?

在重构时,我在子类中遇到了以下方法:publicvoiddisposeResultsTable(){super.disposeResultsTable();}保留此方法而不是简单地允许调用继承的父类(superclass)方法有什么好处? 最佳答案 我能想到的唯一技术原因是Michael在评论中提出-使受限方法成为public。不过,我能想到一些人为的原因。例如,这可能是放置断点的方便位置,用于调试子类的disposeResultsTable调用。或者这可能是作为一个占位符-“记得为这个类实现这个方法”,或者可能有人想明确地向这段代

java - 如何外部化 web.xml servlet init-param?用于 Servlet 的 Spring DelegatingFilterProxy?

我有一个无法修改的第3方servlet。它接受一个我想外部化的init-param(来自web.xml)。我可以使用DelegatingFilterProxy外部化一个servlet过滤器init-param.这有效地将servlet过滤器定义移到了Spring中,那里有更强大的外部化工具(例如:PropertyPlaceholderConfigurer、环境变量等)我如何为servlet执行此操作? 最佳答案 看起来您需要一个DelegatingServletProxy类,尽管这在Spring中不存在。但是,我认为使用Delega

java - 如何将 init 参数传递给 HttpSessionListener?

配置过滤器时,我可以在web.xml中将一些值作为初始参数传递给过滤器,并通过FilterConfig在过滤器中获取这些值。如何在web.xml中为HttpSessionListener配置一些初始参数?如果这不可能,有什么替代方案? 最佳答案 在代码中:publicclassMyListenerimplementsHttpSessionListener{publicvoidsessionCreated(HttpSessionEventevent){Stringvalue=event.getSession().getServletC

java - 不可变类和子类

我正在尝试了解可变/不可变类,我遇到了thispost提供的部分答案是:Ifyouwanttoenforceimmutability,youcannothavesubclasses.Seeforexamplejava.lang.String,whichisafinalclassforthisreason:TopreventpeoplefromsubclassingStringtomakeitmutable.好的,我明白了,但是,你会如何处理这个问题。假设您的任务是创建3个Employee类:Accountant、ITDepartment和QualityAssurance。现在,您可以创

Java Generics - 类本身的子类?

我目前正在阅读JavaGenerics,当涉及到通配符时我有点卡住了。我从Collections类中得到了这个方法:publicvoidcopy(Listdest,Listsrc){for(inti=0;i然后我被告知可以像这样调用方法:Listobjs=newArrayList();Listints=newArrayList();Collections.copy(objs,ints);由于类型参数已经交由编译器决定,书上说编译器选择类型参数为Integer。但这怎么可能呢?如果取为Integer,这意味着在方法声明中-List将转换为List.这是一个错误,还是关于泛型有不同的规则?

java - 检查数组中的元素是否属于 Java 中的子类

假设我想检查对象数组中的值是否属于父类(superclass)或子类,例如我的父类(superclass)名为Animal,我声明了一个Animal类型的数组AnimalmyAnimals[]=newAnimal[];现在假设有像Lion、Tiger、Elephant等Animal的子类。如果我要遍历一个数组,我将如何区分子类(Lion、Tiger等)与父类(superclass)Animal?谢谢! 最佳答案 使用instanceofAtruntime,theresultoftheinstanceofoperatoristruei